package org.qiyu.live.im.core.server.common;

import io.netty.channel.ChannelHandlerContext;

/**
 * @Description: 获取上下文信息
 * @Author: 张广焱
 * @Date: 2024-05-02 下午8:28
 */
public class ImContextUtils {
    /**
     * @Description 将userid绑定到channel上下文
     * @Author zhangguangyan
     * @Date 2023-09-08 21:49:23
     */
    public static void setUserId(ChannelHandlerContext ctx, Long userId) {
//        ctx.attr(ImContextAttr.USER_ID).set(userId);
        ctx.channel().attr(ImContextAttr.USER_ID).set(userId);
    }

    /**
     * @Description 获取到userid
     * @Author zhangguangyan
     * @Date 2023-09-08 21:50:36
     */
    public static Long getUserId(ChannelHandlerContext ctx) {
//        return ctx.attr(ImContextAttr.USER_ID).get();
        return ctx.channel().attr(ImContextAttr.USER_ID).get();
    }

    /**
     * @Description 将appid绑定到channel上下文
     * @Author zhangguangyan
     * @Date 2023-09-08 21:53:33
     */

    public static void setAppid(ChannelHandlerContext ctx, int appid) {
//        ctx.attr(ImContextAttr.APP_ID).set(appid);
        ctx.channel().attr(ImContextAttr.APP_ID).set(appid);
    }


    /**
     * @Description 获取appid
     * @Author zhangguangyan
     * @Date 2023-09-08 21:53:51
     */
    public static Integer getAppid(ChannelHandlerContext ctx) {
//        return ctx.attr(ImContextAttr.APP_ID).get();
        return ctx.channel().attr(ImContextAttr.APP_ID).get();
    }

    public static void removeUserId(ChannelHandlerContext ctx) {
//        ctx.attr(ImContextAttr.USER_ID).remove();
        ctx.channel().attr(ImContextAttr.USER_ID).remove();
    }

    public static void removeAppId(ChannelHandlerContext ctx) {
//        ctx.attr(ImContextAttr.APP_ID).remove();
        ctx.channel().attr(ImContextAttr.APP_ID).remove();
    }
    public static Integer getRoomId(ChannelHandlerContext ctx) {
        return ctx.attr(ImContextAttr.ROOM_ID).get();
    }

    public static void setRoomId(ChannelHandlerContext ctx, int roomId) {
        ctx.attr(ImContextAttr.ROOM_ID).set(roomId);
    }

}
